package com.zhentao.datacollection.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 入库统计DTO
 */
public class StorageStatisticsDTO {
    
    private Long id;
    
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate clearanceDate; // 结关日期
    
    private String dataType; // 数据类型
    private String storageStatus; // 入库状态
    private String storageStatusText; // 入库状态文本
    private String failureReason; // 失败原因
    
    private BigDecimal rmbAmount; // 人民币金额值
    private BigDecimal usdAmount; // 美元金额值
    
    private String yearOnYearGrowthText; // 金额同比（格式化后的文本）
    private String monthOnMonthGrowthText; // 金额环比（格式化后的文本）
    
    private Integer recordCount; // 记录条数
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime storageTime; // 入库时间
    
    // 查询条件
    private LocalDate startDate;
    private LocalDate endDate;
    private String dataTypeFilter;
    private String statusFilter;
    
    // Getters and Setters
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    
    public LocalDate getClearanceDate() { return clearanceDate; }
    public void setClearanceDate(LocalDate clearanceDate) { this.clearanceDate = clearanceDate; }
    
    public String getDataType() { return dataType; }
    public void setDataType(String dataType) { this.dataType = dataType; }
    
    public String getStorageStatus() { return storageStatus; }
    public void setStorageStatus(String storageStatus) { this.storageStatus = storageStatus; }
    
    public String getStorageStatusText() { return storageStatusText; }
    public void setStorageStatusText(String storageStatusText) { this.storageStatusText = storageStatusText; }
    
    public String getFailureReason() { return failureReason; }
    public void setFailureReason(String failureReason) { this.failureReason = failureReason; }
    
    public BigDecimal getRmbAmount() { return rmbAmount; }
    public void setRmbAmount(BigDecimal rmbAmount) { this.rmbAmount = rmbAmount; }
    
    public BigDecimal getUsdAmount() { return usdAmount; }
    public void setUsdAmount(BigDecimal usdAmount) { this.usdAmount = usdAmount; }
    
    public String getYearOnYearGrowthText() { return yearOnYearGrowthText; }
    public void setYearOnYearGrowthText(String yearOnYearGrowthText) { this.yearOnYearGrowthText = yearOnYearGrowthText; }
    
    public String getMonthOnMonthGrowthText() { return monthOnMonthGrowthText; }
    public void setMonthOnMonthGrowthText(String monthOnMonthGrowthText) { this.monthOnMonthGrowthText = monthOnMonthGrowthText; }
    
    public Integer getRecordCount() { return recordCount; }
    public void setRecordCount(Integer recordCount) { this.recordCount = recordCount; }
    
    public LocalDateTime getStorageTime() { return storageTime; }
    public void setStorageTime(LocalDateTime storageTime) { this.storageTime = storageTime; }
    
    public LocalDate getStartDate() { return startDate; }
    public void setStartDate(LocalDate startDate) { this.startDate = startDate; }
    
    public LocalDate getEndDate() { return endDate; }
    public void setEndDate(LocalDate endDate) { this.endDate = endDate; }
    
    public String getDataTypeFilter() { return dataTypeFilter; }
    public void setDataTypeFilter(String dataTypeFilter) { this.dataTypeFilter = dataTypeFilter; }
    
    public String getStatusFilter() { return statusFilter; }
    public void setStatusFilter(String statusFilter) { this.statusFilter = statusFilter; }
}
